import type {
  CodeRuleConfigDtlVo,
  CodeRuleConfigPageQo,
  CodeRuleConfigQo,
  CodeRuleConfigVo,
} from '#/system/codeConfig'
import { http } from '@/utils/request/index'

/**
 * 获取编码配置分页列表
 * @param params 查询参数
 * @returns 编码配置列表
 */
export function getCodeRuleConfigPageListApi(params: CodeRuleConfigPageQo) {
  return http.request<PageResult<CodeRuleConfigVo>>('get', '/admin-api/system/codeRuleConfig/codeRuleConfigPage', {
    params,
  })
}

/**
 * 获取编码配置详情
 * @param id 编码配置id
 * @returns 编码配置详情
 */
export function getCodeRuleConfigDetailsApi(id?: string) {
  return http.request<CodeRuleConfigDtlVo>('get', `/admin-api/system/codeRuleConfig/codeRuleConfigDetails/${id}`)
}

/**
 * 新增编码配置
 * @param data 编码配置信息
 * @returns 编码配置id
 */
export function createCodeRuleConfigApi(data: CodeRuleConfigQo) {
  return http.request<string>('post', '/admin-api/system/codeRuleConfig/codeRuleConfigCreate', {
    data,
  })
}

/**
 * 修改编码配置
 * @param data 编码配置信息
 * @returns 编码配置id
 */
export function updateCodeRuleConfigApi(data: CodeRuleConfigQo) {
  return http.request<string>('post', '/admin-api/system/codeRuleConfig/codeRuleConfigUpdate', {
    data,
  })
}

/**
 * 删除编码配置
 * @param idList 编码配置id列表
 * @returns 编码配置id
 */
export function deleteCodeRuleConfigApi(idList: string[]) {
  return http.request<string>('post', '/admin-api/system/codeRuleConfig/codeRuleConfigRemove', {
    params: {
      idList: idList.join(','),
    },
  })
}
